package org.example.flea_market_mvc.service.categories;

import org.example.flea_market_mvc.entity.Categories;
import org.example.flea_market_mvc.param.CategoryParam;

import java.util.List;

/**
 * 商品分类服务接口
 * 处理分类管理业务逻辑，支持多级分类结构维护
 */
public interface CategoriesService {

    /**
     * 插入新分类记录
     * @param categoryParam 分类参数对象
     * @return 插入成功返回1，失败返回0
     */
    int insert(CategoryParam categoryParam);

    /**
     * 根据分类ID删除分类记录
     * @param id 分类ID
     * @return 删除成功返回1，失败返回0
     */
    int deleteById(Integer id);

    /**
     * 更新分类记录
     * @param categoryParam 分类参数对象（含更新信息）
     * @return 更新成功返回1，失败返回0
     */
    int update(CategoryParam categoryParam);

    /**
     * 根据分类ID查询分类记录
     * @param id 分类ID
     * @return 分类实体对象，未找到返回null
     */
    Categories selectById(Integer id);

    /**
     * 查询所有分类记录
     * @return 分类实体列表
     */
    List<Categories> selectAll();

    /**
     * 分页查询分类记录
     * @param param 查询参数，包含分页信息
     * @return 分页结果
     */
    org.example.flea_market_mvc.entity.PageInfo<org.example.flea_market_mvc.entity.Categories> selectPage(CategoryParam param);
}